Expand description
? formatting.
Debug should format the output in a programmer-facing, debugging context.
Generally speaking, you should just derive a Debug implementation.
When used with the alternate format specifier #?, the output is pretty-printed.
For more information on formatters, see the module-level documentation.
This trait can be used with #[derive] if all fields implement Debug. When
derived for structs, it will use the name of the struct, then {, then a
comma-separated list of each field’s name and Debug value, then }. For
enums, it will use the name of the variant and, if applicable, (, then the
Debug values of the fields, then ).
Stability
Derived Debug formats are not stable, and so may change with future Rust
versions. Additionally, Debug implementations of types provided by the
standard library (libstd, libcore, liballoc, etc.) are not stable, and
may also change with future Rust versions.
Examples
Deriving an implementation:
#[derive(Debug)]
struct Point {
x: i32,
y: i32,
}
let origin = Point { x: 0, y: 0 };
assert_eq!(format!("The origin is: {origin:?}"), "The origin is: Point { x: 0, y: 0 }");Manually implementing:
use std::fmt;
struct Point {
x: i32,
y: i32,
}
impl fmt::Debug for Point {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
f.debug_struct("Point")
.field("x", &self.x)
.field("y", &self.y)
.finish()
}
}
let origin = Point { x: 0, y: 0 };
assert_eq!(format!("The origin is: {origin:?}"), "The origin is: Point { x: 0, y: 0 }");There are a number of helper methods on the Formatter struct to help you with manual
implementations, such as debug_struct.
Types that do not wish to use the standard suite of debug representations
provided by the Formatter trait (debug_struct, debug_tuple,
debut_list, debug_set, debug_map) can do something totally custom by
manually writing an arbitrary representation to the Formatter.
impl fmt::Debug for Point {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
write!(f, "Point [{} {}]", self.x, self.y)
}
}Debug implementations using either derive or the debug builder API
on Formatter support pretty-printing using the alternate flag: {:#?}.
Pretty-printing with #?:
#[derive(Debug)]
struct Point {
x: i32,
y: i32,
}
let origin = Point { x: 0, y: 0 };
assert_eq!(format!("The origin is: {origin:#?}"),
"The origin is: Point {
x: 0,
y: 0,
}");Required methods
Formats the value using the given formatter.
Examples
use std::fmt;
struct Position {
longitude: f32,
latitude: f32,
}
impl fmt::Debug for Position {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
f.debug_tuple("")
.field(&self.longitude)
.field(&self.latitude)
.finish()
}
}
let position = Position { longitude: 1.987, latitude: 2.983 };
assert_eq!(format!("{position:?}"), "(1.987, 2.983)");
assert_eq!(format!("{position:#?}"), "(
1.987,
2.983,
)");Trait Implementations
Implementations on Foreign Types
1.12.0 · sourceimpl<'_, K, V> Debug for OccupiedEntry<'_, K, V> where
K: Debug,
V: Debug,
impl<'_, K, V> Debug for OccupiedEntry<'_, K, V> where
K: Debug,
V: Debug,
1.16.0 · sourceimpl Debug for ChildStdout
impl Debug for ChildStdout
1.12.0 · sourceimpl Debug for RecvTimeoutError
impl Debug for RecvTimeoutError
sourceimpl<T> Debug for SyncOnceCell<T> where
T: Debug,
impl<T> Debug for SyncOnceCell<T> where
T: Debug,
sourceimpl<'_, K, V, S> Debug for RawEntryBuilderMut<'_, K, V, S>
impl<'_, K, V, S> Debug for RawEntryBuilderMut<'_, K, V, S>
1.6.0 · sourceimpl Debug for DirBuilder
impl Debug for DirBuilder
1.8.0 · sourceimpl Debug for SystemTime
impl Debug for SystemTime
1.16.0 · sourceimpl<'_, T, S> Debug for Difference<'_, T, S> where
T: Debug + Eq + Hash,
S: BuildHasher,
impl<'_, T, S> Debug for Difference<'_, T, S> where
T: Debug + Eq + Hash,
S: BuildHasher,
1.56.0 · sourceimpl Debug for WriterPanicked
impl Debug for WriterPanicked
sourceimpl<W> Debug for IntoInnerError<W> where
W: Debug,
impl<W> Debug for IntoInnerError<W> where
W: Debug,
1.16.0 · sourceimpl Debug for BarrierWaitResult
impl Debug for BarrierWaitResult
1.10.0 · sourceimpl Debug for UnixStream
impl Debug for UnixStream
1.54.0 · sourceimpl<K, V> Debug for IntoValues<K, V> where
V: Debug,
impl<K, V> Debug for IntoValues<K, V> where
V: Debug,
1.13.0 · sourceimpl<'_> Debug for Components<'_>
impl<'_> Debug for Components<'_>
sourceimpl<'scope, T> Debug for ScopedJoinHandle<'scope, T>
impl<'scope, T> Debug for ScopedJoinHandle<'scope, T>
1.16.0 · sourceimpl<'_, T, S> Debug for SymmetricDifference<'_, T, S> where
T: Debug + Eq + Hash,
S: BuildHasher,
impl<'_, T, S> Debug for SymmetricDifference<'_, T, S> where
T: Debug + Eq + Hash,
S: BuildHasher,
1.36.0 · sourceimpl<'a> Debug for IoSliceMut<'a>
impl<'a> Debug for IoSliceMut<'a>
1.16.0 · sourceimpl<'_, T> Debug for RwLockReadGuard<'_, T> where
T: Debug,
impl<'_, T> Debug for RwLockReadGuard<'_, T> where
T: Debug,
1.10.0 · sourceimpl Debug for UnixDatagram
impl Debug for UnixDatagram
1.12.0 · sourceimpl<'_, K, V> Debug for VacantEntry<'_, K, V> where
K: Debug,
impl<'_, K, V> Debug for VacantEntry<'_, K, V> where
K: Debug,
sourceimpl<'a> Debug for SocketAncillary<'a>
impl<'a> Debug for SocketAncillary<'a>
sourceimpl<T> Debug for PoisonError<T>
impl<T> Debug for PoisonError<T>
1.16.0 · sourceimpl Debug for RandomState
impl Debug for RandomState
1.16.0 · sourceimpl<'_, T> Debug for MutexGuard<'_, T> where
T: Debug + ?Sized,
impl<'_, T> Debug for MutexGuard<'_, T> where
T: Debug + ?Sized,
sourceimpl<'_, K, V, S> Debug for RawVacantEntryMut<'_, K, V, S>
impl<'_, K, V, S> Debug for RawVacantEntryMut<'_, K, V, S>
1.58.0 · sourceimpl Debug for FromVecWithNulError
impl Debug for FromVecWithNulError
sourceimpl<'_, K, V, S> Debug for RawOccupiedEntryMut<'_, K, V, S> where
K: Debug,
V: Debug,
impl<'_, K, V, S> Debug for RawOccupiedEntryMut<'_, K, V, S> where
K: Debug,
V: Debug,
1.7.0 · sourceimpl Debug for StripPrefixError
impl Debug for StripPrefixError
sourceimpl<'_, K, V, S> Debug for RawEntryBuilder<'_, K, V, S>
impl<'_, K, V, S> Debug for RawEntryBuilder<'_, K, V, S>
1.16.0 · sourceimpl<'_> Debug for StdoutLock<'_>
impl<'_> Debug for StdoutLock<'_>
sourceimpl<T> Debug for TrySendError<T>
impl<T> Debug for TrySendError<T>
1.10.0 · sourceimpl Debug for SocketAddr
impl Debug for SocketAddr
1.16.0 · sourceimpl Debug for ChildStdin
impl Debug for ChildStdin
1.16.0 · sourceimpl<'_> Debug for SplitPaths<'_>
impl<'_> Debug for SplitPaths<'_>
1.7.0 · sourceimpl Debug for IntoStringError
impl Debug for IntoStringError
sourceimpl<T> Debug for TryLockError<T>
impl<T> Debug for TryLockError<T>
1.57.0 · sourceimpl<'a> Debug for CommandArgs<'a>
impl<'a> Debug for CommandArgs<'a>
1.16.0 · sourceimpl<'_> Debug for StderrLock<'_>
impl<'_> Debug for StderrLock<'_>
1.16.0 · sourceimpl<T> Debug for JoinHandle<T>
impl<T> Debug for JoinHandle<T>
1.5.0 · sourceimpl Debug for WaitTimeoutResult
impl Debug for WaitTimeoutResult
1.16.0 · sourceimpl Debug for ChildStderr
impl Debug for ChildStderr
1.16.0 · sourceimpl<'_, T> Debug for RwLockWriteGuard<'_, T> where
T: Debug,
impl<'_, T> Debug for RwLockWriteGuard<'_, T> where
T: Debug,
sourceimpl<'a> Debug for PrefixComponent<'a>
impl<'a> Debug for PrefixComponent<'a>
1.57.0 · sourceimpl<'a> Debug for CommandEnvs<'a>
impl<'a> Debug for CommandEnvs<'a>
sourceimpl<'_, K, V> Debug for OccupiedError<'_, K, V> where
K: Debug,
V: Debug,
impl<'_, K, V> Debug for OccupiedError<'_, K, V> where
K: Debug,
V: Debug,
1.10.0 · sourceimpl Debug for FromBytesWithNulError
impl Debug for FromBytesWithNulError
sourceimpl<'_, K, V, S> Debug for RawEntryMut<'_, K, V, S> where
K: Debug,
V: Debug,
impl<'_, K, V, S> Debug for RawEntryMut<'_, K, V, S> where
K: Debug,
V: Debug,
sourceimpl<W> Debug for LineWriter<W> where
W: Write + Debug,
impl<W> Debug for LineWriter<W> where
W: Write + Debug,
1.26.0 · sourceimpl Debug for AccessError
impl Debug for AccessError
1.8.0 · sourceimpl<T> Debug for SyncSender<T>
impl<T> Debug for SyncSender<T>
1.8.0 · sourceimpl Debug for SystemTimeError
impl Debug for SystemTimeError
1.13.0 · sourceimpl Debug for DefaultHasher
impl Debug for DefaultHasher
1.16.0 · sourceimpl<'_, T, S> Debug for Intersection<'_, T, S> where
T: Debug + Eq + Hash,
S: BuildHasher,
impl<'_, T, S> Debug for Intersection<'_, T, S> where
T: Debug + Eq + Hash,
S: BuildHasher,
sourceimpl Debug for Ipv6MulticastScope
impl Debug for Ipv6MulticastScope
1.10.0 · sourceimpl Debug for UnixListener
impl Debug for UnixListener
sourceimpl<'_> Debug for BorrowedFd<'_>
impl<'_> Debug for BorrowedFd<'_>
sourceimpl Debug for BacktraceFrame
impl Debug for BacktraceFrame
1.28.0 · sourceimpl Debug for NonZeroU32
impl Debug for NonZeroU32
1.51.0 · sourceimpl<'_, T, P> Debug for SplitInclusive<'_, T, P> where
T: Debug,
P: FnMut(&T) -> bool,
impl<'_, T, P> Debug for SplitInclusive<'_, T, P> where
T: Debug,
P: FnMut(&T) -> bool,
sourceimpl<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> Debug for (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11) where
T1: Debug,
T2: Debug,
T3: Debug,
T4: Debug,
T5: Debug,
T6: Debug,
T7: Debug,
T8: Debug,
T9: Debug,
T10: Debug,
T11: Debug + ?Sized,
impl<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> Debug for (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11) where
T1: Debug,
T2: Debug,
T3: Debug,
T4: Debug,
T5: Debug,
T6: Debug,
T7: Debug,
T8: Debug,
T9: Debug,
T10: Debug,
T11: Debug + ?Sized,
1.31.0 · sourceimpl<'a, T> Debug for ChunksExact<'a, T> where
T: 'a + Debug,
impl<'a, T> Debug for ChunksExact<'a, T> where
T: 'a + Debug,
1.26.0 · sourceimpl<Idx> Debug for RangeInclusive<Idx> where
Idx: Debug,
impl<Idx> Debug for RangeInclusive<Idx> where
Idx: Debug,
1.4.0 · sourceimpl<Ret, A, B, C, D, E, F, G, H, I, J, K, L> Debug for fn(A, B, C, D, E, F, G, H, I, J, K, L) -> Ret
impl<Ret, A, B, C, D, E, F, G, H, I, J, K, L> Debug for fn(A, B, C, D, E, F, G, H, I, J, K, L) -> Ret
sourceimpl<I, G> Debug for IntersperseWith<I, G> where
I: Iterator + Debug,
G: Debug,
<I as Iterator>::Item: Debug,
impl<I, G> Debug for IntersperseWith<I, G> where
I: Iterator + Debug,
G: Debug,
<I as Iterator>::Item: Debug,
1.20.0 · sourceimpl<T> Debug for ManuallyDrop<T> where
T: Debug + ?Sized,
impl<T> Debug for ManuallyDrop<T> where
T: Debug + ?Sized,
1.55.0 · sourceimpl<B, C> Debug for ControlFlow<B, C> where
B: Debug,
C: Debug,
impl<B, C> Debug for ControlFlow<B, C> where
B: Debug,
C: Debug,
1.29.0 · sourceimpl<I, U> Debug for Flatten<I> where
I: Debug + Iterator,
U: Debug + Iterator,
<I as Iterator>::Item: IntoIterator,
<<I as Iterator>::Item as IntoIterator>::IntoIter == U,
<<I as Iterator>::Item as IntoIterator>::Item == <U as Iterator>::Item,
impl<I, U> Debug for Flatten<I> where
I: Debug + Iterator,
U: Debug + Iterator,
<I as Iterator>::Item: IntoIterator,
<<I as Iterator>::Item as IntoIterator>::IntoIter == U,
<<I as Iterator>::Item as IntoIterator>::Item == <U as Iterator>::Item,
1.34.0 · sourceimpl<T, F> Debug for Successors<T, F> where
T: Debug,
impl<T, F> Debug for Successors<T, F> where
T: Debug,
sourceimpl<'a> Debug for Utf8LossyChunk<'a>
impl<'a> Debug for Utf8LossyChunk<'a>
sourceimpl<T> Debug for Saturating<T> where
T: Debug,
impl<T> Debug for Saturating<T> where
T: Debug,
1.4.0 · sourceimpl<Ret, A, B, C, D, E, F, G, H, I, J> Debug for unsafe extern "C" fn(A, B, C, D, E, F, G, H, I, J) -> Ret
impl<Ret, A, B, C, D, E, F, G, H, I, J> Debug for unsafe extern "C" fn(A, B, C, D, E, F, G, H, I, J) -> Ret
1.9.0 · sourceimpl Debug for DecodeUtf16Error
impl Debug for DecodeUtf16Error
sourceimpl<T8, T9, T10, T11> Debug for (T8, T9, T10, T11) where
T8: Debug,
T9: Debug,
T10: Debug,
T11: Debug + ?Sized,
impl<T8, T9, T10, T11> Debug for (T8, T9, T10, T11) where
T8: Debug,
T9: Debug,
T10: Debug,
T11: Debug + ?Sized,
1.4.0 · sourceimpl<Ret, A, B, C, D, E, F, G, H, I, J, K> Debug for fn(A, B, C, D, E, F, G, H, I, J, K) -> Ret
impl<Ret, A, B, C, D, E, F, G, H, I, J, K> Debug for fn(A, B, C, D, E, F, G, H, I, J, K) -> Ret
1.4.0 · sourceimpl<Ret, A, B, C, D, E, F, G, H, I> Debug for extern "C" fn(A, B, C, D, E, F, G, H, I, ...) -> Ret
impl<Ret, A, B, C, D, E, F, G, H, I> Debug for extern "C" fn(A, B, C, D, E, F, G, H, I, ...) -> Ret
1.4.0 · sourceimpl<Ret, A, B, C, D, E, F, G, H, I, J, K, L> Debug for extern "C" fn(A, B, C, D, E, F, G, H, I, J, K, L) -> Ret
impl<Ret, A, B, C, D, E, F, G, H, I, J, K, L> Debug for extern "C" fn(A, B, C, D, E, F, G, H, I, J, K, L) -> Ret
1.28.0 · sourceimpl<F> Debug for RepeatWith<F> where
F: Debug,
impl<F> Debug for RepeatWith<F> where
F: Debug,
1.34.0 · sourceimpl Debug for NonZeroI32
impl Debug for NonZeroI32
sourceimpl<'a, P> Debug for RSplit<'a, P> where
P: Pattern<'a>,
<P as Pattern<'a>>::Searcher: Debug,
impl<'a, P> Debug for RSplit<'a, P> where
P: Pattern<'a>,
<P as Pattern<'a>>::Searcher: Debug,
1.4.0 · sourceimpl<Ret, A, B, C, D, E, F, G, H, I> Debug for extern "C" fn(A, B, C, D, E, F, G, H, I) -> Ret
impl<Ret, A, B, C, D, E, F, G, H, I> Debug for extern "C" fn(A, B, C, D, E, F, G, H, I) -> Ret
1.34.0 · sourceimpl Debug for NonZeroI16
impl Debug for NonZeroI16
1.41.0 · sourceimpl<T> Debug for MaybeUninit<T>
impl<T> Debug for MaybeUninit<T>
1.9.0 · sourceimpl<H> Debug for BuildHasherDefault<H>
impl<H> Debug for BuildHasherDefault<H>
1.4.0 · sourceimpl<Ret, A, B, C, D, E, F, G, H, I, J, K> Debug for unsafe fn(A, B, C, D, E, F, G, H, I, J, K) -> Ret
impl<Ret, A, B, C, D, E, F, G, H, I, J, K> Debug for unsafe fn(A, B, C, D, E, F, G, H, I, J, K) -> Ret
1.34.0 · sourceimpl Debug for NonZeroIsize
impl Debug for NonZeroIsize
1.34.0 · sourceimpl Debug for TryFromSliceError
impl Debug for TryFromSliceError
sourceimpl<T> Debug for SyncUnsafeCell<T> where
T: ?Sized,
impl<T> Debug for SyncUnsafeCell<T> where
T: ?Sized,
sourceimpl<Dyn> Debug for DynMetadata<Dyn> where
Dyn: ?Sized,
impl<Dyn> Debug for DynMetadata<Dyn> where
Dyn: ?Sized,
1.4.0 · sourceimpl<Ret, A, B, C, D, E, F, G, H, I> Debug for unsafe extern "C" fn(A, B, C, D, E, F, G, H, I, ...) -> Ret
impl<Ret, A, B, C, D, E, F, G, H, I> Debug for unsafe extern "C" fn(A, B, C, D, E, F, G, H, I, ...) -> Ret
sourceimpl<'a, 'b> Debug for StrSearcher<'a, 'b>
impl<'a, 'b> Debug for StrSearcher<'a, 'b>
sourceimpl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> Debug for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11) where
T0: Debug,
T1: Debug,
T2: Debug,
T3: Debug,
T4: Debug,
T5: Debug,
T6: Debug,
T7: Debug,
T8: Debug,
T9: Debug,
T10: Debug,
T11: Debug + ?Sized,
impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> Debug for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11) where
T0: Debug,
T1: Debug,
T2: Debug,
T3: Debug,
T4: Debug,
T5: Debug,
T6: Debug,
T7: Debug,
T8: Debug,
T9: Debug,
T10: Debug,
T11: Debug + ?Sized,
sourceimpl<'a> Debug for CharIndices<'a>
impl<'a> Debug for CharIndices<'a>
1.4.0 · sourceimpl<Ret, A, B, C, D, E, F, G, H, I, J> Debug for extern "C" fn(A, B, C, D, E, F, G, H, I, J) -> Ret
impl<Ret, A, B, C, D, E, F, G, H, I, J> Debug for extern "C" fn(A, B, C, D, E, F, G, H, I, J) -> Ret
1.4.0 · sourceimpl<Ret, A, B, C, D, E, F, G, H, I, J, K, L> Debug for unsafe fn(A, B, C, D, E, F, G, H, I, J, K, L) -> Ret
impl<Ret, A, B, C, D, E, F, G, H, I, J, K, L> Debug for unsafe fn(A, B, C, D, E, F, G, H, I, J, K, L) -> Ret
1.4.0 · sourceimpl<Ret, A, B, C, D, E, F, G, H, I, J, K, L> Debug for unsafe extern "C" fn(A, B, C, D, E, F, G, H, I, J, K, L) -> Ret
impl<Ret, A, B, C, D, E, F, G, H, I, J, K, L> Debug for unsafe extern "C" fn(A, B, C, D, E, F, G, H, I, J, K, L) -> Ret
1.9.0 · sourceimpl<T> Debug for UnsafeCell<T> where
T: ?Sized,
impl<T> Debug for UnsafeCell<T> where
T: ?Sized,
1.4.0 · sourceimpl<Ret, A, B, C, D, E, F, G, H, I, J> Debug for extern "C" fn(A, B, C, D, E, F, G, H, I, J, ...) -> Ret
impl<Ret, A, B, C, D, E, F, G, H, I, J> Debug for extern "C" fn(A, B, C, D, E, F, G, H, I, J, ...) -> Ret
1.4.0 · sourceimpl<Ret, A, B, C, D, E, F, G, H> Debug for unsafe extern "C" fn(A, B, C, D, E, F, G, H, ...) -> Ret
impl<Ret, A, B, C, D, E, F, G, H> Debug for unsafe extern "C" fn(A, B, C, D, E, F, G, H, ...) -> Ret
sourceimpl<'a, T, const N: usize> Debug for ArrayWindows<'a, T, N> where
T: 'a + Debug,
impl<'a, T, const N: usize> Debug for ArrayWindows<'a, T, N> where
T: 'a + Debug,
1.5.0 · sourceimpl<'a, P> Debug for MatchIndices<'a, P> where
P: Pattern<'a>,
<P as Pattern<'a>>::Searcher: Debug,
impl<'a, P> Debug for MatchIndices<'a, P> where
P: Pattern<'a>,
<P as Pattern<'a>>::Searcher: Debug,
1.34.0 · sourceimpl<'a> Debug for SplitAsciiWhitespace<'a>
impl<'a> Debug for SplitAsciiWhitespace<'a>
1.51.0 · sourceimpl<'_, T, P> Debug for SplitInclusiveMut<'_, T, P> where
T: Debug,
P: FnMut(&T) -> bool,
impl<'_, T, P> Debug for SplitInclusiveMut<'_, T, P> where
T: Debug,
P: FnMut(&T) -> bool,
1.28.0 · sourceimpl Debug for NonZeroU128
impl Debug for NonZeroU128
sourceimpl<'a, 'b, const N: usize> Debug for CharArrayRefSearcher<'a, 'b, N>
impl<'a, 'b, const N: usize> Debug for CharArrayRefSearcher<'a, 'b, N>
1.34.0 · sourceimpl Debug for NonZeroI128
impl Debug for NonZeroI128
1.4.0 · sourceimpl<Ret, A, B, C, D, E, F, G, H, I, J, K> Debug for extern "C" fn(A, B, C, D, E, F, G, H, I, J, K, ...) -> Ret
impl<Ret, A, B, C, D, E, F, G, H, I, J, K> Debug for extern "C" fn(A, B, C, D, E, F, G, H, I, J, K, ...) -> Ret
1.9.0 · sourceimpl<I, U, F> Debug for FlatMap<I, U, F> where
I: Debug,
U: IntoIterator,
<U as IntoIterator>::IntoIter: Debug,
impl<I, U, F> Debug for FlatMap<I, U, F> where
I: Debug,
U: IntoIterator,
<U as IntoIterator>::IntoIter: Debug,
1.50.0 · sourceimpl Debug for LayoutError
impl Debug for LayoutError
1.21.0 · sourceimpl<T> Debug for Discriminant<T>
impl<T> Debug for Discriminant<T>
1.4.0 · sourceimpl<Ret, A, B, C, D, E, F> Debug for unsafe extern "C" fn(A, B, C, D, E, F, ...) -> Ret
impl<Ret, A, B, C, D, E, F> Debug for unsafe extern "C" fn(A, B, C, D, E, F, ...) -> Ret
1.1.0 · sourceimpl<'a> Debug for SplitWhitespace<'a>
impl<'a> Debug for SplitWhitespace<'a>
1.34.0 · sourceimpl Debug for CharTryFromError
impl Debug for CharTryFromError
1.20.0 · sourceimpl Debug for EscapeDebug
impl Debug for EscapeDebug
1.16.0 · sourceimpl<T> Debug for AssertUnwindSafe<T> where
T: Debug,
impl<T> Debug for AssertUnwindSafe<T> where
T: Debug,
1.4.0 · sourceimpl<Ret, A, B, C, D, E, F, G> Debug for extern "C" fn(A, B, C, D, E, F, G, ...) -> Ret
impl<Ret, A, B, C, D, E, F, G> Debug for extern "C" fn(A, B, C, D, E, F, G, ...) -> Ret
1.20.0 · sourceimpl Debug for ParseCharError
impl Debug for ParseCharError
1.5.0 · sourceimpl<'a, P> Debug for RMatchIndices<'a, P> where
P: Pattern<'a>,
<P as Pattern<'a>>::Searcher: Debug,
impl<'a, P> Debug for RMatchIndices<'a, P> where
P: Pattern<'a>,
<P as Pattern<'a>>::Searcher: Debug,
1.4.0 · sourceimpl<Ret, A, B, C, D, E, F, G, H, I, J, K> Debug for extern "C" fn(A, B, C, D, E, F, G, H, I, J, K) -> Ret
impl<Ret, A, B, C, D, E, F, G, H, I, J, K> Debug for extern "C" fn(A, B, C, D, E, F, G, H, I, J, K) -> Ret
sourceimpl<T5, T6, T7, T8, T9, T10, T11> Debug for (T5, T6, T7, T8, T9, T10, T11) where
T5: Debug,
T6: Debug,
T7: Debug,
T8: Debug,
T9: Debug,
T10: Debug,
T11: Debug + ?Sized,
impl<T5, T6, T7, T8, T9, T10, T11> Debug for (T5, T6, T7, T8, T9, T10, T11) where
T5: Debug,
T6: Debug,
T7: Debug,
T8: Debug,
T9: Debug,
T10: Debug,
T11: Debug + ?Sized,
sourceimpl<'a, P> Debug for SplitTerminator<'a, P> where
P: Pattern<'a>,
<P as Pattern<'a>>::Searcher: Debug,
impl<'a, P> Debug for SplitTerminator<'a, P> where
P: Pattern<'a>,
<P as Pattern<'a>>::Searcher: Debug,
sourceimpl<T3, T4, T5, T6, T7, T8, T9, T10, T11> Debug for (T3, T4, T5, T6, T7, T8, T9, T10, T11) where
T3: Debug,
T4: Debug,
T5: Debug,
T6: Debug,
T7: Debug,
T8: Debug,
T9: Debug,
T10: Debug,
T11: Debug + ?Sized,
impl<T3, T4, T5, T6, T7, T8, T9, T10, T11> Debug for (T3, T4, T5, T6, T7, T8, T9, T10, T11) where
T3: Debug,
T4: Debug,
T5: Debug,
T6: Debug,
T7: Debug,
T8: Debug,
T9: Debug,
T10: Debug,
T11: Debug + ?Sized,
sourceimpl<'f> Debug for VaListImpl<'f>
impl<'f> Debug for VaListImpl<'f>
1.13.0 · sourceimpl Debug for BorrowMutError
impl Debug for BorrowMutError
1.31.0 · sourceimpl<'a, T> Debug for ChunksExactMut<'a, T> where
T: 'a + Debug,
impl<'a, T> Debug for ChunksExactMut<'a, T> where
T: 'a + Debug,
sourceimpl<'a, const N: usize> Debug for CharArraySearcher<'a, N>
impl<'a, const N: usize> Debug for CharArraySearcher<'a, N>
1.31.0 · sourceimpl<'a, T> Debug for RChunksExactMut<'a, T> where
T: 'a + Debug,
impl<'a, T> Debug for RChunksExactMut<'a, T> where
T: 'a + Debug,
1.4.0 · sourceimpl<Ret, A, B, C, D, E, F, G, H, I, J, K, L> Debug for extern "C" fn(A, B, C, D, E, F, G, H, I, J, K, L, ...) -> Ret
impl<Ret, A, B, C, D, E, F, G, H, I, J, K, L> Debug for extern "C" fn(A, B, C, D, E, F, G, H, I, J, K, L, ...) -> Ret
1.34.0 · sourceimpl Debug for Infallible
impl Debug for Infallible
sourceimpl<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> Debug for (T2, T3, T4, T5, T6, T7, T8, T9, T10, T11) where
T2: Debug,
T3: Debug,
T4: Debug,
T5: Debug,
T6: Debug,
T7: Debug,
T8: Debug,
T9: Debug,
T10: Debug,
T11: Debug + ?Sized,
impl<T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> Debug for (T2, T3, T4, T5, T6, T7, T8, T9, T10, T11) where
T2: Debug,
T3: Debug,
T4: Debug,
T5: Debug,
T6: Debug,
T7: Debug,
T8: Debug,
T9: Debug,
T10: Debug,
T11: Debug + ?Sized,
sourceimpl<'a, P> Debug for RSplitTerminator<'a, P> where
P: Pattern<'a>,
<P as Pattern<'a>>::Searcher: Debug,
impl<'a, P> Debug for RSplitTerminator<'a, P> where
P: Pattern<'a>,
<P as Pattern<'a>>::Searcher: Debug,
1.31.0 · sourceimpl<'a, T> Debug for RChunksExact<'a, T> where
T: 'a + Debug,
impl<'a, T> Debug for RChunksExact<'a, T> where
T: 'a + Debug,
1.4.0 · sourceimpl<Ret, A, B, C, D, E, F, G, H, I> Debug for unsafe extern "C" fn(A, B, C, D, E, F, G, H, I) -> Ret
impl<Ret, A, B, C, D, E, F, G, H, I> Debug for unsafe extern "C" fn(A, B, C, D, E, F, G, H, I) -> Ret
sourceimpl<T, const LANES: usize> Debug for Mask<T, LANES> where
T: MaskElement + Debug,
LaneCount<LANES>: SupportedLaneCount,
impl<T, const LANES: usize> Debug for Mask<T, LANES> where
T: MaskElement + Debug,
LaneCount<LANES>: SupportedLaneCount,
1.4.0 · sourceimpl<Ret, A, B, C, D, E, F, G, H, I, J> Debug for unsafe extern "C" fn(A, B, C, D, E, F, G, H, I, J, ...) -> Ret
impl<Ret, A, B, C, D, E, F, G, H, I, J> Debug for unsafe extern "C" fn(A, B, C, D, E, F, G, H, I, J, ...) -> Ret
1.4.0 · sourceimpl<Ret, A, B, C, D, E, F, G, H> Debug for extern "C" fn(A, B, C, D, E, F, G, H) -> Ret
impl<Ret, A, B, C, D, E, F, G, H> Debug for extern "C" fn(A, B, C, D, E, F, G, H) -> Ret
sourceimpl<'a, P> Debug for RSplitN<'a, P> where
P: Pattern<'a>,
<P as Pattern<'a>>::Searcher: Debug,
impl<'a, P> Debug for RSplitN<'a, P> where
P: Pattern<'a>,
<P as Pattern<'a>>::Searcher: Debug,
1.4.0 · sourceimpl<Ret, A, B, C, D, E, F, G, H, I> Debug for unsafe fn(A, B, C, D, E, F, G, H, I) -> Ret
impl<Ret, A, B, C, D, E, F, G, H, I> Debug for unsafe fn(A, B, C, D, E, F, G, H, I) -> Ret
1.4.0 · sourceimpl<Ret, A, B, C, D, E, F, G, H, I, J> Debug for fn(A, B, C, D, E, F, G, H, I, J) -> Ret
impl<Ret, A, B, C, D, E, F, G, H, I, J> Debug for fn(A, B, C, D, E, F, G, H, I, J) -> Ret
sourceimpl<T6, T7, T8, T9, T10, T11> Debug for (T6, T7, T8, T9, T10, T11) where
T6: Debug,
T7: Debug,
T8: Debug,
T9: Debug,
T10: Debug,
T11: Debug + ?Sized,
impl<T6, T7, T8, T9, T10, T11> Debug for (T6, T7, T8, T9, T10, T11) where
T6: Debug,
T7: Debug,
T8: Debug,
T9: Debug,
T10: Debug,
T11: Debug + ?Sized,
1.4.0 · sourceimpl<Ret, A, B, C, D, E, F, G, H, I, J, K> Debug for unsafe extern "C" fn(A, B, C, D, E, F, G, H, I, J, K) -> Ret
impl<Ret, A, B, C, D, E, F, G, H, I, J, K> Debug for unsafe extern "C" fn(A, B, C, D, E, F, G, H, I, J, K) -> Ret
1.4.0 · sourceimpl<Ret, A, B, C, D, E, F, G, H, I, J> Debug for unsafe fn(A, B, C, D, E, F, G, H, I, J) -> Ret
impl<Ret, A, B, C, D, E, F, G, H, I, J> Debug for unsafe fn(A, B, C, D, E, F, G, H, I, J) -> Ret
1.2.0 · sourceimpl<'a, P> Debug for RMatches<'a, P> where
P: Pattern<'a>,
<P as Pattern<'a>>::Searcher: Debug,
impl<'a, P> Debug for RMatches<'a, P> where
P: Pattern<'a>,
<P as Pattern<'a>>::Searcher: Debug,
sourceimpl<T7, T8, T9, T10, T11> Debug for (T7, T8, T9, T10, T11) where
T7: Debug,
T8: Debug,
T9: Debug,
T10: Debug,
T11: Debug + ?Sized,
impl<T7, T8, T9, T10, T11> Debug for (T7, T8, T9, T10, T11) where
T7: Debug,
T8: Debug,
T9: Debug,
T10: Debug,
T11: Debug + ?Sized,
1.34.0 · sourceimpl Debug for NonZeroI64
impl Debug for NonZeroI64
sourceimpl<T, const LANES: usize> Debug for Simd<T, LANES> where
T: SimdElement + Debug,
LaneCount<LANES>: SupportedLaneCount,
impl<T, const LANES: usize> Debug for Simd<T, LANES> where
T: SimdElement + Debug,
LaneCount<LANES>: SupportedLaneCount,
1.4.0 · sourceimpl<Ret, A, B, C, D, E, F, G, H, I, J, K, L> Debug for unsafe extern "C" fn(A, B, C, D, E, F, G, H, I, J, K, L, ...) -> Ret
impl<Ret, A, B, C, D, E, F, G, H, I, J, K, L> Debug for unsafe extern "C" fn(A, B, C, D, E, F, G, H, I, J, K, L, ...) -> Ret
1.3.0 · sourceimpl Debug for AtomicBool
impl Debug for AtomicBool
sourceimpl Debug for FromFloatSecsError
impl Debug for FromFloatSecsError
1.13.0 · sourceimpl Debug for BorrowError
impl Debug for BorrowError
1.60.0 · sourceimpl<'a> Debug for EscapeAscii<'a>
impl<'a> Debug for EscapeAscii<'a>
1.55.0 · sourceimpl Debug for IntErrorKind
impl Debug for IntErrorKind
1.4.0 · sourceimpl<Ret, A, B, C, D, E, F, G> Debug for unsafe extern "C" fn(A, B, C, D, E, F, G, ...) -> Ret
impl<Ret, A, B, C, D, E, F, G> Debug for unsafe extern "C" fn(A, B, C, D, E, F, G, ...) -> Ret
sourceimpl<I> Debug for Intersperse<I> where
I: Debug + Iterator,
<I as Iterator>::Item: Clone,
<I as Iterator>::Item: Debug,
impl<I> Debug for Intersperse<I> where
I: Debug + Iterator,
<I as Iterator>::Item: Clone,
<I as Iterator>::Item: Debug,
sourceimpl<'a, T, P> Debug for GroupByMut<'a, T, P> where
T: 'a + Debug,
impl<'a, T, P> Debug for GroupByMut<'a, T, P> where
T: 'a + Debug,
sourceimpl<'a, 'b> Debug for CharSliceSearcher<'a, 'b>
impl<'a, 'b> Debug for CharSliceSearcher<'a, 'b>
1.27.0 · sourceimpl Debug for CpuidResult
impl Debug for CpuidResult
1.31.0 · sourceimpl<'a, T> Debug for RChunksMut<'a, T> where
T: 'a + Debug,
impl<'a, T> Debug for RChunksMut<'a, T> where
T: 'a + Debug,
sourceimpl<'a, P> Debug for SplitN<'a, P> where
P: Pattern<'a>,
<P as Pattern<'a>>::Searcher: Debug,
impl<'a, P> Debug for SplitN<'a, P> where
P: Pattern<'a>,
<P as Pattern<'a>>::Searcher: Debug,
sourceimpl<Y, R> Debug for GeneratorState<Y, R> where
Y: Debug,
R: Debug,
impl<Y, R> Debug for GeneratorState<Y, R> where
Y: Debug,
R: Debug,
1.4.0 · sourceimpl<Ret, A, B, C, D, E, F, G> Debug for unsafe extern "C" fn(A, B, C, D, E, F, G) -> Ret
impl<Ret, A, B, C, D, E, F, G> Debug for unsafe extern "C" fn(A, B, C, D, E, F, G) -> Ret
1.34.0 · sourceimpl<'a> Debug for EscapeDefault<'a>
impl<'a> Debug for EscapeDefault<'a>
1.26.0 · sourceimpl<Idx> Debug for RangeToInclusive<Idx> where
Idx: Debug,
impl<Idx> Debug for RangeToInclusive<Idx> where
Idx: Debug,
1.3.0 · sourceimpl Debug for AtomicIsize
impl Debug for AtomicIsize
1.34.0 · sourceimpl Debug for TryFromIntError
impl Debug for TryFromIntError
1.17.0 · sourceimpl<'_> Debug for EncodeUtf16<'_>
impl<'_> Debug for EncodeUtf16<'_>
1.28.0 · sourceimpl Debug for NonZeroU16
impl Debug for NonZeroU16
1.36.0 · sourceimpl Debug for RawWakerVTable
impl Debug for RawWakerVTable
1.2.0 · sourceimpl<'a, P> Debug for Matches<'a, P> where
P: Pattern<'a>,
<P as Pattern<'a>>::Searcher: Debug,
impl<'a, P> Debug for Matches<'a, P> where
P: Pattern<'a>,
<P as Pattern<'a>>::Searcher: Debug,
1.4.0 · sourceimpl<Ret, A, B, C, D, E, F, G, H> Debug for extern "C" fn(A, B, C, D, E, F, G, H, ...) -> Ret
impl<Ret, A, B, C, D, E, F, G, H> Debug for extern "C" fn(A, B, C, D, E, F, G, H, ...) -> Ret
1.28.0 · sourceimpl Debug for NonZeroUsize
impl Debug for NonZeroUsize
1.16.0 · sourceimpl Debug for EscapeDefault
impl Debug for EscapeDefault
sourceimpl<T4, T5, T6, T7, T8, T9, T10, T11> Debug for (T4, T5, T6, T7, T8, T9, T10, T11) where
T4: Debug,
T5: Debug,
T6: Debug,
T7: Debug,
T8: Debug,
T9: Debug,
T10: Debug,
T11: Debug + ?Sized,
impl<T4, T5, T6, T7, T8, T9, T10, T11> Debug for (T4, T5, T6, T7, T8, T9, T10, T11) where
T4: Debug,
T5: Debug,
T6: Debug,
T7: Debug,
T8: Debug,
T9: Debug,
T10: Debug,
T11: Debug + ?Sized,
1.34.0 · sourceimpl<'a> Debug for EscapeDebug<'a>
impl<'a> Debug for EscapeDebug<'a>
sourceimpl<'a, T, const N: usize> Debug for ArrayChunksMut<'a, T, N> where
T: 'a + Debug,
impl<'a, T, const N: usize> Debug for ArrayChunksMut<'a, T, N> where
T: 'a + Debug,
1.3.0 · sourceimpl Debug for AtomicUsize
impl Debug for AtomicUsize
1.51.0 · sourceimpl<'a, P> Debug for SplitInclusive<'a, P> where
P: Pattern<'a>,
<P as Pattern<'a>>::Searcher: Debug,
impl<'a, P> Debug for SplitInclusive<'a, P> where
P: Pattern<'a>,
<P as Pattern<'a>>::Searcher: Debug,
1.4.0 · sourceimpl<Ret, A, B, C, D, E, F, G, H> Debug for unsafe extern "C" fn(A, B, C, D, E, F, G, H) -> Ret
impl<Ret, A, B, C, D, E, F, G, H> Debug for unsafe extern "C" fn(A, B, C, D, E, F, G, H) -> Ret
1.28.0 · sourceimpl Debug for NonZeroU64
impl Debug for NonZeroU64
sourceimpl<'a, T, const N: usize> Debug for ArrayChunks<'a, T, N> where
T: 'a + Debug,
impl<'a, T, const N: usize> Debug for ArrayChunks<'a, T, N> where
T: 'a + Debug,
sourceimpl<'a> Debug for CharSearcher<'a>
impl<'a> Debug for CharSearcher<'a>
1.4.0 · sourceimpl<Ret, A, B, C, D, E, F, G, H, I, J, K> Debug for unsafe extern "C" fn(A, B, C, D, E, F, G, H, I, J, K, ...) -> Ret
impl<Ret, A, B, C, D, E, F, G, H, I, J, K> Debug for unsafe extern "C" fn(A, B, C, D, E, F, G, H, I, J, K, ...) -> Ret
1.59.0 · sourceimpl Debug for TryFromCharError
impl Debug for TryFromCharError
1.34.0 · sourceimpl<'a> Debug for EscapeUnicode<'a>
impl<'a> Debug for EscapeUnicode<'a>
1.12.0 · sourceimpl<'_, K, V> Debug for VacantEntry<'_, K, V> where
K: Debug + Ord,
impl<'_, K, V> Debug for VacantEntry<'_, K, V> where
K: Debug + Ord,
1.57.0 · sourceimpl Debug for TryReserveError
impl Debug for TryReserveError
1.17.0 · sourceimpl<'_, T> Debug for SymmetricDifference<'_, T> where
T: Debug,
impl<'_, T> Debug for SymmetricDifference<'_, T> where
T: Debug,
sourceimpl<'_, K, V, F> Debug for DrainFilter<'_, K, V, F> where
K: Debug,
V: Debug,
F: FnMut(&K, &mut V) -> bool,
impl<'_, K, V, F> Debug for DrainFilter<'_, K, V, F> where
K: Debug,
V: Debug,
F: FnMut(&K, &mut V) -> bool,
1.4.0 · sourceimpl<T> Debug for BinaryHeap<T> where
T: Debug,
impl<T> Debug for BinaryHeap<T> where
T: Debug,
sourceimpl<T> Debug for LinkedList<T> where
T: Debug,
impl<T> Debug for LinkedList<T> where
T: Debug,
1.17.0 · sourceimpl<'_, T> Debug for Intersection<'_, T> where
T: Debug,
impl<'_, T> Debug for Intersection<'_, T> where
T: Debug,
sourceimpl<T> Debug for IntoIterSorted<T> where
T: Debug,
impl<T> Debug for IntoIterSorted<T> where
T: Debug,
sourceimpl<'_, B> Debug for Cow<'_, B> where
B: Debug + ToOwned + ?Sized,
<B as ToOwned>::Owned: Debug,
impl<'_, B> Debug for Cow<'_, B> where
B: Debug + ToOwned + ?Sized,
<B as ToOwned>::Owned: Debug,
sourceimpl<'a, T, F, A> Debug for DrainFilter<'a, T, F, A> where
T: Debug,
F: Debug + FnMut(&mut T) -> bool,
A: Debug + Allocator,
impl<'a, T, F, A> Debug for DrainFilter<'a, T, F, A> where
T: Debug,
F: Debug + FnMut(&mut T) -> bool,
A: Debug + Allocator,
1.54.0 · sourceimpl<K, V> Debug for IntoValues<K, V> where
V: Debug,
impl<K, V> Debug for IntoValues<K, V> where
V: Debug,
sourceimpl<'a, T> Debug for DrainSorted<'a, T> where
T: Debug + Ord,
impl<'a, T> Debug for DrainSorted<'a, T> where
T: Debug + Ord,
sourceimpl Debug for TryReserveErrorKind
impl Debug for TryReserveErrorKind
1.17.0 · sourceimpl<'_, T> Debug for Difference<'_, T> where
T: Debug,
impl<'_, T> Debug for Difference<'_, T> where
T: Debug,
1.21.0 · sourceimpl<'a, I, A> Debug for Splice<'a, I, A> where
I: 'a + Debug + Iterator,
A: 'a + Debug + Allocator,
<I as Iterator>::Item: Debug,
impl<'a, I, A> Debug for Splice<'a, I, A> where
I: 'a + Debug + Iterator,
A: 'a + Debug + Allocator,
<I as Iterator>::Item: Debug,
sourceimpl Debug for _Unwind_Reason_Code
impl Debug for _Unwind_Reason_Code
sourceimpl Debug for WasmEntryAttributes
impl Debug for WasmEntryAttributes
sourceimpl<T> Debug for WithDispatch<T> where
T: Debug,
impl<T> Debug for WithDispatch<T> where
T: Debug,
sourceimpl<T> Debug for Instrumented<T> where
T: Debug,
impl<T> Debug for Instrumented<T> where
T: Debug,
sourceimpl<'a> Debug for RecordBuilder<'a>
impl<'a> Debug for RecordBuilder<'a>
sourceimpl<'a> Debug for MetadataBuilder<'a>
impl<'a> Debug for MetadataBuilder<'a>
sourceimpl<T> Debug for DebugValue<T> where
T: Debug,
impl<T> Debug for DebugValue<T> where
T: Debug,
sourceimpl Debug for ParseLevelFilterError
impl Debug for ParseLevelFilterError
sourceimpl<'a> Debug for Attributes<'a>
impl<'a> Debug for Attributes<'a>
sourceimpl<T> Debug for DisplayValue<T> where
T: Display,
impl<T> Debug for DisplayValue<T> where
T: Display,
sourceimpl Debug for SetGlobalDefaultError
impl Debug for SetGlobalDefaultError
sourceimpl<T> Debug for CapacityError<T>
impl<T> Debug for CapacityError<T>
sourceimpl<const CAP: usize> Debug for ArrayString<CAP>
impl<const CAP: usize> Debug for ArrayString<CAP>
sourceimpl<E> Debug for I64Deserializer<E>
impl<E> Debug for I64Deserializer<E>
sourceimpl<E> Debug for U32Deserializer<E>
impl<E> Debug for U32Deserializer<E>
sourceimpl<E> Debug for I32Deserializer<E>
impl<E> Debug for I32Deserializer<E>
sourceimpl<E> Debug for I128Deserializer<E>
impl<E> Debug for I128Deserializer<E>
sourceimpl<E> Debug for U16Deserializer<E>
impl<E> Debug for U16Deserializer<E>
sourceimpl<E> Debug for IsizeDeserializer<E>
impl<E> Debug for IsizeDeserializer<E>
sourceimpl<'de, E> Debug for BorrowedStrDeserializer<'de, E>
impl<'de, E> Debug for BorrowedStrDeserializer<'de, E>
sourceimpl<E> Debug for I8Deserializer<E>
impl<E> Debug for I8Deserializer<E>
sourceimpl<'a, E> Debug for CowStrDeserializer<'a, E>
impl<'a, E> Debug for CowStrDeserializer<'a, E>
sourceimpl<E> Debug for U8Deserializer<E>
impl<E> Debug for U8Deserializer<E>
sourceimpl<E> Debug for F64Deserializer<E>
impl<E> Debug for F64Deserializer<E>
sourceimpl<'a, E> Debug for StrDeserializer<'a, E>
impl<'a, E> Debug for StrDeserializer<'a, E>
sourceimpl<'de, I, E> Debug for MapDeserializer<'de, I, E> where
I: Iterator + Debug,
<I as Iterator>::Item: Pair,
<<I as Iterator>::Item as Pair>::Second: Debug,
impl<'de, I, E> Debug for MapDeserializer<'de, I, E> where
I: Iterator + Debug,
<I as Iterator>::Item: Pair,
<<I as Iterator>::Item as Pair>::Second: Debug,
sourceimpl<E> Debug for CharDeserializer<E>
impl<E> Debug for CharDeserializer<E>
sourceimpl<I, E> Debug for SeqDeserializer<I, E> where
I: Debug,
impl<I, E> Debug for SeqDeserializer<I, E> where
I: Debug,
sourceimpl<'a> Debug for Unexpected<'a>
impl<'a> Debug for Unexpected<'a>
sourceimpl<E> Debug for U64Deserializer<E>
impl<E> Debug for U64Deserializer<E>
sourceimpl<E> Debug for U128Deserializer<E>
impl<E> Debug for U128Deserializer<E>
sourceimpl<A> Debug for MapAccessDeserializer<A> where
A: Debug,
impl<A> Debug for MapAccessDeserializer<A> where
A: Debug,
sourceimpl<'a, E> Debug for BytesDeserializer<'a, E>
impl<'a, E> Debug for BytesDeserializer<'a, E>
sourceimpl<E> Debug for UnitDeserializer<E>
impl<E> Debug for UnitDeserializer<E>
sourceimpl<'de, E> Debug for BorrowedBytesDeserializer<'de, E>
impl<'de, E> Debug for BorrowedBytesDeserializer<'de, E>
sourceimpl<E> Debug for BoolDeserializer<E>
impl<E> Debug for BoolDeserializer<E>
sourceimpl<E> Debug for F32Deserializer<E>
impl<E> Debug for F32Deserializer<E>
sourceimpl<E> Debug for I16Deserializer<E>
impl<E> Debug for I16Deserializer<E>
sourceimpl<A> Debug for SeqAccessDeserializer<A> where
A: Debug,
impl<A> Debug for SeqAccessDeserializer<A> where
A: Debug,
sourceimpl<E> Debug for UsizeDeserializer<E>
impl<E> Debug for UsizeDeserializer<E>
sourceimpl<E> Debug for StringDeserializer<E>
impl<E> Debug for StringDeserializer<E>
sourceimpl<N, E, F, W> Debug for Subscriber<N, E, F, W> where
N: Debug,
E: Debug,
F: Debug,
W: Debug,
impl<N, E, F, W> Debug for Subscriber<N, E, F, W> where
N: Debug,
E: Debug,
F: Debug,
W: Debug,
sourceimpl<'a, F> Debug for FieldFnVisitor<'a, F>
impl<'a, F> Debug for FieldFnVisitor<'a, F>
sourceimpl<'a> Debug for PrettyVisitor<'a>
impl<'a> Debug for PrettyVisitor<'a>
sourceimpl<M> Debug for WithMinLevel<M> where
M: Debug,
impl<M> Debug for WithMinLevel<M> where
M: Debug,
sourceimpl<'a, S, N> Debug for FmtContext<'a, S, N>
impl<'a, S, N> Debug for FmtContext<'a, S, N>
sourceimpl<'a, R> Debug for ScopeFromRoot<'a, R> where
R: LookupSpan<'a>,
impl<'a, R> Debug for ScopeFromRoot<'a, R> where
R: LookupSpan<'a>,
sourceimpl<N, E, F, W> Debug for SubscriberBuilder<N, E, F, W> where
N: Debug,
E: Debug,
F: Debug,
W: Debug,
impl<N, E, F, W> Debug for SubscriberBuilder<N, E, F, W> where
N: Debug,
E: Debug,
F: Debug,
W: Debug,
sourceimpl<M> Debug for WithMaxLevel<M> where
M: Debug,
impl<M> Debug for WithMaxLevel<M> where
M: Debug,
sourceimpl<'a, R> Debug for SpanRef<'a, R> where
R: Debug + LookupSpan<'a>,
<R as LookupSpan<'a>>::Data: Debug,
impl<'a, R> Debug for SpanRef<'a, R> where
R: Debug + LookupSpan<'a>,
<R as LookupSpan<'a>>::Data: Debug,
sourceimpl<'a> Debug for ExtensionsMut<'a>
impl<'a> Debug for ExtensionsMut<'a>
sourceimpl<M, F> Debug for WithFilter<M, F> where
M: Debug,
F: Debug,
impl<M, F> Debug for WithFilter<M, F> where
M: Debug,
F: Debug,
sourceimpl<S, F, R> Debug for DynFilterFn<S, F, R>
impl<S, F, R> Debug for DynFilterFn<S, F, R>
sourceimpl<E> Debug for FormattedFields<E>
impl<E> Debug for FormattedFields<E>
sourceimpl<'a> Debug for JsonVisitor<'a>
impl<'a> Debug for JsonVisitor<'a>
sourceimpl<A, B> Debug for EitherWriter<A, B> where
A: Debug,
B: Debug,
impl<A, B> Debug for EitherWriter<A, B> where
A: Debug,
B: Debug,
sourceimpl<'a> Debug for Extensions<'a>
impl<'a> Debug for Extensions<'a>
sourceimpl<'a, R> Debug for FromRoot<'a, R> where
R: Debug + LookupSpan<'a>,
impl<'a, R> Debug for FromRoot<'a, R> where
R: Debug + LookupSpan<'a>,
sourceimpl<'a> Debug for DefaultVisitor<'a>
impl<'a> Debug for DefaultVisitor<'a>
sourceimpl<'a, L> Debug for Scope<'a, L> where
L: Debug + LookupSpan<'a>,
impl<'a, L> Debug for Scope<'a, L> where
L: Debug + LookupSpan<'a>,
sourceimpl<D, V> Debug for VisitDelimited<D, V> where
D: Debug,
V: Debug,
impl<D, V> Debug for VisitDelimited<D, V> where
D: Debug,
V: Debug,
sourceimpl<'r> Debug for CaptureNames<'r>
impl<'r> Debug for CaptureNames<'r>
sourceimpl Debug for SetMatchesIntoIter
impl Debug for SetMatchesIntoIter
sourceimpl<'a> Debug for SetMatchesIter<'a>
impl<'a> Debug for SetMatchesIter<'a>
sourceimpl<'c, 't> Debug for SubCaptureMatches<'c, 't>
impl<'c, 't> Debug for SubCaptureMatches<'c, 't>
sourceimpl<'a, R> Debug for ReplacerRef<'a, R> where
R: Debug + ?Sized,
impl<'a, R> Debug for ReplacerRef<'a, R> where
R: Debug + ?Sized,
sourceimpl Debug for CaptureLocations
impl Debug for CaptureLocations
sourceimpl<'c, 't> Debug for SubCaptureMatches<'c, 't>
impl<'c, 't> Debug for SubCaptureMatches<'c, 't>
sourceimpl<'a> Debug for SetMatchesIter<'a>
impl<'a> Debug for SetMatchesIter<'a>
sourceimpl Debug for CaptureLocations
impl Debug for CaptureLocations
sourceimpl Debug for SetMatchesIntoIter
impl Debug for SetMatchesIntoIter
sourceimpl<'r> Debug for CaptureNames<'r>
impl<'r> Debug for CaptureNames<'r>
sourceimpl<'r, 't> Debug for CaptureMatches<'r, 't>
impl<'r, 't> Debug for CaptureMatches<'r, 't>
sourceimpl<'a, R> Debug for ReplacerRef<'a, R> where
R: Debug + ?Sized,
impl<'a, R> Debug for ReplacerRef<'a, R> where
R: Debug + ?Sized,
sourceimpl<'r, 't> Debug for CaptureMatches<'r, 't>
impl<'r, 't> Debug for CaptureMatches<'r, 't>
sourceimpl Debug for ClassUnicodeRange
impl Debug for ClassUnicodeRange
sourceimpl Debug for TranslatorBuilder
impl Debug for TranslatorBuilder
sourceimpl Debug for ClassUnicodeOpKind
impl Debug for ClassUnicodeOpKind
sourceimpl Debug for ClassSetBinaryOpKind
impl Debug for ClassSetBinaryOpKind
sourceimpl<'a> Debug for ClassUnicodeIter<'a>
impl<'a> Debug for ClassUnicodeIter<'a>
sourceimpl Debug for UnicodeWordError
impl Debug for UnicodeWordError
sourceimpl<'a> Debug for ClassBytesIter<'a>
impl<'a> Debug for ClassBytesIter<'a>
sourceimpl Debug for ClassUnicodeKind
impl Debug for ClassUnicodeKind
sourceimpl Debug for SpecialLiteralKind
impl Debug for SpecialLiteralKind
sourceimpl Debug for ClassSetBinaryOp
impl Debug for ClassSetBinaryOp
sourceimpl<'a, 'b, S> Debug for FindOverlappingIter<'a, 'b, S> where
S: Debug + StateID,
impl<'a, 'b, S> Debug for FindOverlappingIter<'a, 'b, S> where
S: Debug + StateID,
sourceimpl<S> Debug for AhoCorasick<S> where
S: Debug + StateID,
impl<S> Debug for AhoCorasick<S> where
S: Debug + StateID,
sourceimpl Debug for AhoCorasickBuilder
impl Debug for AhoCorasickBuilder
sourceimpl<'h, 'n> Debug for FindRevIter<'h, 'n>
impl<'h, 'n> Debug for FindRevIter<'h, 'n>
sourceimpl<T, S> Debug for PremultipliedByteClass<T, S> where
T: Debug + AsRef<[S]>,
S: Debug + StateID,
impl<T, S> Debug for PremultipliedByteClass<T, S> where
T: Debug + AsRef<[S]>,
S: Debug + StateID,
sourceimpl Debug for Style
impl Debug for Style
Styles have a special Debug implementation that only shows the fields that
are set. Fields that haven’t been touched aren’t included in the output.
This behaviour gets bypassed when using the alternate formatting mode
format!("{:#?}").
use ansi_term::Colour::{Red, Blue};
assert_eq!("Style { fg(Red), on(Blue), bold, italic }",
format!("{:?}", Red.on(Blue).bold().italic()));sourceimpl<'a, S> Debug for ANSIGenericString<'a, S> where
S: 'a + Debug + ToOwned + ?Sized,
<S as ToOwned>::Owned: Debug,
impl<'a, S> Debug for ANSIGenericString<'a, S> where
S: 'a + Debug + ToOwned + ?Sized,
<S as ToOwned>::Owned: Debug,
sourceimpl<'a, S> Debug for ANSIGenericStrings<'a, S> where
S: 'a + Debug + ToOwned + PartialEq<S> + ?Sized,
<S as ToOwned>::Owned: Debug,
impl<'a, S> Debug for ANSIGenericStrings<'a, S> where
S: 'a + Debug + ToOwned + PartialEq<S> + ?Sized,
<S as ToOwned>::Owned: Debug,
sourceimpl<'a> Debug for PrettyFormatter<'a>
impl<'a> Debug for PrettyFormatter<'a>
sourceimpl Debug for CompactFormatter
impl Debug for CompactFormatter
sourceimpl<'a> Debug for SerializeMetadata<'a>
impl<'a> Debug for SerializeMetadata<'a>
sourceimpl<'a> Debug for SerializeEvent<'a>
impl<'a> Debug for SerializeEvent<'a>
sourceimpl<'a, T> Debug for SerializeFieldMap<'a, T> where
T: Debug,
impl<'a, T> Debug for SerializeFieldMap<'a, T> where
T: Debug,
sourceimpl<'a> Debug for SerializeAttributes<'a>
impl<'a> Debug for SerializeAttributes<'a>
sourceimpl<'a> Debug for SerializeFieldSet<'a>
impl<'a> Debug for SerializeFieldSet<'a>
sourceimpl<'a> Debug for SerializeId<'a>
impl<'a> Debug for SerializeId<'a>
sourceimpl<S> Debug for SerdeStructVisitor<S> where
S: Debug + SerializeStruct,
<S as SerializeStruct>::Error: Debug,
impl<S> Debug for SerdeStructVisitor<S> where
S: Debug + SerializeStruct,
<S as SerializeStruct>::Error: Debug,
sourceimpl<'a> Debug for SerializeLevel<'a>
impl<'a> Debug for SerializeLevel<'a>
sourceimpl<'a> Debug for SerializeRecord<'a>
impl<'a> Debug for SerializeRecord<'a>
sourceimpl<S> Debug for SerdeMapVisitor<S> where
S: Debug + SerializeMap,
<S as SerializeMap>::Error: Debug,
impl<S> Debug for SerdeMapVisitor<S> where
S: Debug + SerializeMap,
<S as SerializeMap>::Error: Debug,
sourceimpl<T, C> Debug for OwnedEntry<T, C> where
T: Debug,
C: Config,
impl<T, C> Debug for OwnedEntry<T, C> where
T: Debug,
C: Config,
sourceimpl<T> Debug for ThreadLocal<T> where
T: Send + Debug,
impl<T> Debug for ThreadLocal<T> where
T: Send + Debug,
sourceimpl<T> Debug for CachedThreadLocal<T> where
T: Send + Debug,
impl<T> Debug for CachedThreadLocal<T> where
T: Send + Debug,
sourceimpl Debug for OnceNonZeroUsize
impl Debug for OnceNonZeroUsize
sourceimpl Debug for WaitTimeoutResult
impl Debug for WaitTimeoutResult
sourceimpl<'a, R, T> Debug for RwLockReadGuard<'a, R, T> where
R: 'a + RawRwLock,
T: 'a + Debug + ?Sized,
impl<'a, R, T> Debug for RwLockReadGuard<'a, R, T> where
R: 'a + RawRwLock,
T: 'a + Debug + ?Sized,
sourceimpl<'a, R, T> Debug for MappedRwLockReadGuard<'a, R, T> where
R: 'a + RawRwLock,
T: 'a + Debug + ?Sized,
impl<'a, R, T> Debug for MappedRwLockReadGuard<'a, R, T> where
R: 'a + RawRwLock,
T: 'a + Debug + ?Sized,
sourceimpl<'a, R, T> Debug for MappedMutexGuard<'a, R, T> where
R: 'a + RawMutex,
T: 'a + Debug + ?Sized,
impl<'a, R, T> Debug for MappedMutexGuard<'a, R, T> where
R: 'a + RawMutex,
T: 'a + Debug + ?Sized,
sourceimpl<'a, R, G, T> Debug for MappedReentrantMutexGuard<'a, R, G, T> where
R: 'a + RawMutex,
G: 'a + GetThreadId,
T: 'a + Debug + ?Sized,
impl<'a, R, G, T> Debug for MappedReentrantMutexGuard<'a, R, G, T> where
R: 'a + RawMutex,
G: 'a + GetThreadId,
T: 'a + Debug + ?Sized,
sourceimpl<'a, R, T> Debug for RwLockUpgradableReadGuard<'a, R, T> where
R: 'a + RawRwLockUpgrade,
T: 'a + Debug + ?Sized,
impl<'a, R, T> Debug for RwLockUpgradableReadGuard<'a, R, T> where
R: 'a + RawRwLockUpgrade,
T: 'a + Debug + ?Sized,
sourceimpl<R, G, T> Debug for ReentrantMutex<R, G, T> where
R: RawMutex,
G: GetThreadId,
T: Debug + ?Sized,
impl<R, G, T> Debug for ReentrantMutex<R, G, T> where
R: RawMutex,
G: GetThreadId,
T: Debug + ?Sized,
sourceimpl<'a, R, G, T> Debug for ReentrantMutexGuard<'a, R, G, T> where
R: 'a + RawMutex,
G: 'a + GetThreadId,
T: 'a + Debug + ?Sized,
impl<'a, R, G, T> Debug for ReentrantMutexGuard<'a, R, G, T> where
R: 'a + RawMutex,
G: 'a + GetThreadId,
T: 'a + Debug + ?Sized,
sourceimpl<'a, R, T> Debug for MappedRwLockWriteGuard<'a, R, T> where
R: 'a + RawRwLock,
T: 'a + Debug + ?Sized,
impl<'a, R, T> Debug for MappedRwLockWriteGuard<'a, R, T> where
R: 'a + RawRwLock,
T: 'a + Debug + ?Sized,
sourceimpl<'a, R, T> Debug for RwLockWriteGuard<'a, R, T> where
R: 'a + RawRwLock,
T: 'a + Debug + ?Sized,
impl<'a, R, T> Debug for RwLockWriteGuard<'a, R, T> where
R: 'a + RawRwLock,
T: 'a + Debug + ?Sized,
sourceimpl Debug for CollectionAllocErr
impl Debug for CollectionAllocErr
sourceimpl Debug for ParseWeekdayError
impl Debug for ParseWeekdayError
sourceimpl Debug for NaiveDateTime
impl Debug for NaiveDateTime
The Debug output of the naive date and time dt is the same as
dt.format("%Y-%m-%dT%H:%M:%S%.f").
The string printed can be readily parsed via the parse method on str.
It should be noted that, for leap seconds not on the minute boundary, it may print a representation not distinguishable from non-leap seconds. This doesn’t matter in practice, since such leap seconds never happened. (By the time of the first leap second on 1972-06-30, every time zone offset around the world has standardized to the 5-minute alignment.)
Example
use chrono::NaiveDate;
let dt = NaiveDate::from_ymd(2016, 11, 15).and_hms(7, 39, 24);
assert_eq!(format!("{:?}", dt), "2016-11-15T07:39:24");Leap seconds may also be used.
let dt = NaiveDate::from_ymd(2015, 6, 30).and_hms_milli(23, 59, 59, 1_500);
assert_eq!(format!("{:?}", dt), "2015-06-30T23:59:60.500");sourceimpl Debug for IsoWeek
impl Debug for IsoWeek
The Debug output of the ISO week w is the same as
d.format("%G-W%V")
where d is any NaiveDate value in that week.
Example
use chrono::{NaiveDate, Datelike};
assert_eq!(format!("{:?}", NaiveDate::from_ymd(2015, 9, 5).iso_week()), "2015-W36");
assert_eq!(format!("{:?}", NaiveDate::from_ymd( 0, 1, 3).iso_week()), "0000-W01");
assert_eq!(format!("{:?}", NaiveDate::from_ymd(9999, 12, 31).iso_week()), "9999-W52");ISO 8601 requires an explicit sign for years before 1 BCE or after 9999 CE.
assert_eq!(format!("{:?}", NaiveDate::from_ymd( 0, 1, 2).iso_week()), "-0001-W52");
assert_eq!(format!("{:?}", NaiveDate::from_ymd(10000, 12, 31).iso_week()), "+10000-W52");sourceimpl Debug for NaiveDate
impl Debug for NaiveDate
The Debug output of the naive date d is the same as
d.format("%Y-%m-%d").
The string printed can be readily parsed via the parse method on str.
Example
use chrono::NaiveDate;
assert_eq!(format!("{:?}", NaiveDate::from_ymd(2015, 9, 5)), "2015-09-05");
assert_eq!(format!("{:?}", NaiveDate::from_ymd( 0, 1, 1)), "0000-01-01");
assert_eq!(format!("{:?}", NaiveDate::from_ymd(9999, 12, 31)), "9999-12-31");ISO 8601 requires an explicit sign for years before 1 BCE or after 9999 CE.
assert_eq!(format!("{:?}", NaiveDate::from_ymd( -1, 1, 1)), "-0001-01-01");
assert_eq!(format!("{:?}", NaiveDate::from_ymd(10000, 12, 31)), "+10000-12-31");sourceimpl<T> Debug for LocalResult<T> where
T: Debug,
impl<T> Debug for LocalResult<T> where
T: Debug,
sourceimpl<'a> Debug for StrftimeItems<'a>
impl<'a> Debug for StrftimeItems<'a>
sourceimpl Debug for NaiveTime
impl Debug for NaiveTime
The Debug output of the naive time t is the same as
t.format("%H:%M:%S%.f").
The string printed can be readily parsed via the parse method on str.
It should be noted that, for leap seconds not on the minute boundary, it may print a representation not distinguishable from non-leap seconds. This doesn’t matter in practice, since such leap seconds never happened. (By the time of the first leap second on 1972-06-30, every time zone offset around the world has standardized to the 5-minute alignment.)
Example
use chrono::NaiveTime;
assert_eq!(format!("{:?}", NaiveTime::from_hms(23, 56, 4)), "23:56:04");
assert_eq!(format!("{:?}", NaiveTime::from_hms_milli(23, 56, 4, 12)), "23:56:04.012");
assert_eq!(format!("{:?}", NaiveTime::from_hms_micro(23, 56, 4, 1234)), "23:56:04.001234");
assert_eq!(format!("{:?}", NaiveTime::from_hms_nano(23, 56, 4, 123456)), "23:56:04.000123456");Leap seconds may also be used.
assert_eq!(format!("{:?}", NaiveTime::from_hms_milli(6, 59, 59, 1_500)), "06:59:60.500");